
#ifndef MAC_CONFIG
#define MAC_CONFIG

#include "hs_types.h"
//#include "../MAC/Header_files/wlan_const.h"
//#include "../MAC/Header_files/wlan_types.h"
//#include "../MAC/Header_files/sbpcap.h"

//extern pcap_file_t pcap_llc2mac_insert ;

//extern pcap_file_t pcap_mac2llc;
//extern pcap_file_t pcap_llc2mac;

//extern pcap_file_t pcap_phy2mac_insert ;

//extern pcap_file_t pcap_phy2mac;
//extern pcap_file_t pcap_mac2phy;

typedef struct
{
    HS_UINT32 test_mode ;

    HS_BOOL   rf_disabled ;
    HS_BOOL   llc_disabled ;

    HS_UINT32 datarate ;
    HS_UINT32 channel  ;

    //char      ssid[MAX_SSID_LENGTH+1] ;

    //Wlan_Addr_t mac ;

    char      ping_ip[64] ;
    HS_BOOL   ping_reply ;
    
    HS_BOOL   arp_reply ;

    HS_UINT32 pkt_size  ;

    HS_UINT32 pkt_count_tx ;
    HS_UINT32 pkt_count_rx ;

    HS_UINT32 pkt_to_insert ;

    HS_UINT32 pkt_broadcast ;

    HS_UINT32 fragmentation ;

    HS_BOOL   force_assoc ;

    HS_BOOL   auto_assoc ;

    HS_BOOL   packet_capture ;

    HS_BOOL   mac_loopback ;

    HS_BOOL   wep ;

    HS_BOOL   wep_std_vec ;

    HS_UINT32 keyid ;

    //HS_UINT8  key[MAX_WEP_KEY_LENGTH] ;

    HS_BOOL   tkip ;

    HS_BOOL   aes ;

	HS_BOOL   count_cycles ;

	HS_INT32 vco_top;

	HS_INT32 vco_bottom;

	HS_INT32  cycles[4] ;

} mac_config_t ;

extern volatile mac_config_t mac_config_g;

void init_WLAN(volatile mac_config_t *mac_config_p) ;
void apply_WLAN_config(volatile mac_config_t *mac_config_p) ;
int parse_WLAN_options(int argc, char *argv[], volatile mac_config_t *mac_config_p) ;

#endif
